package com.niiwoo.civet.account.dto.request;

import com.niiwoo.civet.account.enums.AccountCompanyAccountTypeEnum;
import lombok.Getter;
import lombok.Setter;

import java.io.Serializable;

/**
 * 企业开户请求参数
 * @author TomXue
 * @date 2018-04-24
 **/
@Getter
@Setter
public class OpenCompanyAccountRequestDTO implements Serializable {
    /**
     * 机构ID
     */
    private String orgId;

    /**
     * 企业借款人ID
     */
    private String borrowOrgId;

    /**
     * 企业名称
     */
    private String enterpriseName;

    /**
     * 开户银行许可证核准号
     */
    private String bankLicense;

    /**
     * 组织机构代码
     */
    private String orgNo;

    /**
     * 营业执照编号
     */
    private String businessLicense;

    /**
     * 营业执照编号
     */
    private String taxNo;

    /**
     * 统一社会信用代码
     */
    private String unifiedCode;

    /**
     * 统一社会信用代码
     */
    private String creditCode;

    /**
     * 法人姓名
     */
    private String legal;

    /**
     * 证件类型
     */
    private Byte idCardType;

    /**
     * 法人证件号
     */
    private String legalIdCardNo;

    /**
     * 企业联系人
     */
    private String contact;

    /**
     * 联系人手机号
     */
    private String contactPhone;

    /**
     * 企业对公账户
     */
    private String bankcardNo;

    /**
     * 银行编码
     */
    private String bankcode;

    /**
     * 页面回跳URL
     */
    private String redirectUrl;

    /**
     * 开通帐户类型(1.合作机构 2.担保机构 3.反担保机构 4.企业借款人)
     */
    private Byte openAccountWay;

    /**
     * 合作机构开户?
     * @return
     */
    public boolean isCooperateOrgOpenAccount(){
        return this.openAccountWay.equals(AccountCompanyAccountTypeEnum.COOPERATE_ORG.getType());
    }

    /**
     * 企业借款人开户?
     * @return
     */
    public boolean isEnterpriseBorrowerOpenAccount(){
        return this.openAccountWay.equals(AccountCompanyAccountTypeEnum.BORROW_ORG.getType());
    }

    /**
     * 担保机构开户?
     * @return
     */
    public boolean isGuaranteeOrgOpenAccount(){
        return this.openAccountWay.equals(AccountCompanyAccountTypeEnum.GUARANTEE_ORG.getType());
    }

    /**
     * 投资机构开户?
     * @return
     */
    public boolean isInvestOrgOpenAccount(){
        return this.openAccountWay.equals(AccountCompanyAccountTypeEnum.INVEST_ORG.getType());
    }
}
